package com.thinkTank.oa.service;


import java.util.List;

import com.thinkTank.oa.base.BaseService;
import com.thinkTank.oa.entity.ConfOfAttr;
import com.thinkTank.oa.entity.Conference;
import com.thinkTank.oa.entity.Person;

public interface ConOfAttrService extends BaseService<ConfOfAttr> {


	/**
	 * 通过专家id，查询中间表数据
	 * @param personId
	 * @return
	 */
	public List<ConfOfAttr> findAttrByPersonId(String personId);
	
	
	/**
	 * 通过专家id，删除中间表数据
	 * @param personId
	 * @return
	 */
	public void deleteAttrByPersonId(ConfOfAttr attr);
	
	/**
	 * 通过会议id，删除所有的客户项目信息
	 * @param conferenceId
	 */
	public void deleteProjectByConferenceId(String conferenceId);
	
	
	/**
	 * 通过会议id，删除所有的关联项目信息
	 * @param conferenceId
	 */
	public void deleteCustomerByConferenceId(String conferenceId);
	
	
	/**
	 * 通过会议id查询关联表中的客户信息
	 */
	public List<ConfOfAttr> findAttrCustomerByConfId(String conferenceId );
	
	
	/**
	 * 通过会议id查询关联表中的项目信息
	 */
	public List<ConfOfAttr> findAttrProjectByConfId(String conferenceId );
	
	/**
	 * 通过会议id查询关联表中的嘉宾信息
	 */
	public List<ConfOfAttr> findAttrPersonByConfId(String conferenceId );
	
	/**
	 * 通过会议id,项目查询关联表中的信息
	 */
	public ConfOfAttr findProjectByConfIdAndProjectId(ConfOfAttr attr );
	
	/**
	 * 通过会议id，项目id 删除中间表数据
	 * @param personId
	 * @return
	 */
	public void deleteAttrByProjectId(ConfOfAttr attr);
	
	/**
	 * 通过会议id，客户id 删除中间表数据
	 * @param personId
	 * @return
	 */
	public void deleteAttrByCustomerId(ConfOfAttr attr);
	
	/**
	 * 通过客户id，查询中间表数据
	 * @param personId
	 * @return
	 */
	public List<ConfOfAttr> findAttrByCustomerId(String customerId);
	
	public List<ConfOfAttr> queryAllAndCustomerNoIn(String conferenceId);
	
	public List<ConfOfAttr> queryAllAndProjectNoIn(String conferenceId);
	
	public List<ConfOfAttr> queryAllAndPersonNoIn(String conferenceId);
	
	public List<Person> queryPersonList(String confereceId);
	
	/**
	 * 通过专家pid联合查询会议
	 * @author dongli
	 * @date 2018年10月22日
	 * @param personId
	 * @return
	 */
	public List<Conference> queryConferenceList(String personId);
}
